// The factory design pattern
#ifndef INPUTMAN_H
#define INPUTMAN_H

#include "SFML\Window.hpp"
#include <vector>
#include "object.h"

using std::vector;

class InputManager
{
public:
	static void UpdateInputs(sf::Window* window, float deltaTime);

	static bool EnterPressed(){ return enterPressed;};
	static bool EnterIsDown(){ return enterIsDown;};

	static bool UpArrowPressed(){ return upArrowPressed; };
	static bool UpArrowIsDown(){ return upArrowIsDown; };
	 
	static bool DownArrowPressed(){ return downArrowPressed; };
	static bool DownArrowIsDown(){ return downArrowIsDown; };
	 
	static bool LeftArrowPressed(){ return leftArrowPressed; };
	static bool LeftArrowIsDown(){ return leftArrowIsDown; };
	 
	static bool RightArrowPressed(){ return rightArrowPressed; };
	static bool RightArrowIsDown(){ return rightArrowIsDown; };

	static bool MousePressed(){ return mousePressed; };
	static bool MouseIsDown(){ return mouseIsDown; };

	static float HorizontalAxis(){ return horizontalAxis; };
	static float VericalAxis(){ return verticalAxis; };

private:
	static bool enterPressed;
	static bool enterIsDown;

	static bool upArrowPressed;
	static bool upArrowIsDown;

	static bool downArrowPressed;
	static bool downArrowIsDown;

	static bool leftArrowPressed;
	static bool leftArrowIsDown;

	static bool rightArrowPressed;
	static bool rightArrowIsDown;

	static bool mousePressed;
	static bool mouseIsDown;

	static float horizontalAxis;
	static float verticalAxis;
};


#endif // INPUTMAN_H
